home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 May / EnigmA AMIGA RUN 27 (1998)(G.R. Edizioni)(IT)[!][issue 1998-05].iso / earcd / sinclair-ql / music_keys_bas < prev    next >
Text File  |  1998-02-11  |  1KB  |  54 lines

  1. 100 REMark Commodore Music keyboard
  2. 110 REMark QDOS input test routine.
  3. 120 REMark Simon N Goodwin, 3/2/93.
  4. 130 REMark Uses BIN$ from Toolkit 2
  5. 140 REMark Turbo directives:
  6. 150 IMPLICIT% u,j,row,col,b,mask
  7. 160 :
  8. 170 LET control_port=HEX("bfe301")
  9. 180 LET data_port=control_port-512
  10. 190 NOTES
  11. 200 POKE control_port,0
  12. 210 CLS : CSIZE 2,0
  13. 220 AT 10,0
  14. 230 PRINT "Press the music keys"
  15. 240 PRINT "to see their effect."\\
  16. 250 PRINT "Press SPACE to stop."
  17. 260 PAUSE 20
  18. 270 REPeat poll
  19. 280   FOR i=0 TO 7:AT i,6:j=PEEK(data_port):PRINT BIN$(j,8)!:LOOKUP i,j
  20. 290   IF CODE(INKEY$(#1,1))=32:EXIT poll
  21. 300 END REPeat poll
  22. 310 REMark Revert to parallel output
  23. 320 POKE control_port,255
  24. 330 AT 16,0
  25. 340 PRINT "PAR output restored."
  26. 350 :
  27. 360 DEFine PROCedure S
  28. 370 SAVE "MUSIC_KEYS_BAS"
  29. 380 END DEFine S
  30. 390 :
  31. 400 DEFine PROCedure LOOKUP(row,col)
  32. 410 LOCal b,mask
  33. 420 mask=1
  34. 430 FOR b=0 TO 7
  35. 440   IF (col && mask)=0 : PRINT !a$((b+row*8) MOD 24)!
  36. 450   mask=mask+mask
  37. 460   NEXT b
  38. 470   CLS 4
  39. 480 END FOR b
  40. 490 END DEFine LOOKUP
  41. 500 :
  42. 510 DEFine PROCedure NOTES
  43. 520 DIM a$(23,2)
  44. 530 RESTORE 
  45. 540 FOR i=0 TO 23
  46. 550   READ a$(i)
  47. 560 END FOR i
  48. 570 END DEFine NOTES
  49. 580 :
  50. 590 REMark Note names
  51. 600 DATA "C#","D#","D","E","G","C","F#","F"
  52. 610 DATA "A","B","A#","C","D#","G#","D","C#"
  53. 620 DATA "F","G","F#","G#","B","E","A#","A"
  54.